In the computer hardware industries, microprocessor development and advancement has presented customers with a number of processor architectures and computer systems to choose from. The options available to a customer have grown to allow customers to choose computer systems that have processors better designed to meet their specific needs, from the personal home computer to the network server. And recently to offer customers even further choices, hardware manufacturers have proposed common board computer systems operable across numerous processor architectures. With a modular processor design, a customer could be able to purchase one computer and swap out different processor architectures without needing to replace the entire system, the processor board, or processor chipsets. There are limitations effecting the implementation of such common board systems.
Different processor architectures operate under different protocols, for example, executing instructions of different, incapable word lengths, and in different, incapable ways. The Pentium® and Xeon™ Processor Family of microprocessors (available from Intel Corporation Santa Clara, Calif.) are 32 bit IA32 processors, while the Itanium® Processor Family (IPF) of microprocessors (also available from Intel Corporation) comprises 64 bit processors. And while common board, modular firmware has been proposed for swapping between these processors in a single computer system, such swap out is hindered by the vastly different boot procedures required for starting up a system under each environment.
The boot environment for each processor architecture requires execution of a different basic input/output system (BIOS) at system startup. BIOS is the essential system code or instructions used to control system configuration and to load the operating system for the computing system. BIOS provides the first instructions a computing system executes when it is first turned on. BIOS, which is stored in a flash memory, is executed each time the system is started and executes drivers required for the computer system prior to execution of the operating system abstraction.
Processor architecture may have a different flash memory map for its BIOS. The flash maps for an IA32 BIOS are different from that of an IPF BIOS, for example. Since the flash update procedures rely on flash maps which describe the flash consumption, BIOS updates across processor architectures not available for the common board/socket/module systems. In other words, while common board designs may allow swap out of the microprocessor, one processor architecture BIOS may not be swapped out for another. Furthermore, the topmost flash portions of the book block code for the BIOS may be protected and may not be updated, or changed, to another processor architecture BIOS. In short, while common board systems offer the modularity of microprocessors, they do not offer modularity of the BIOS required specific to these microprocessors. Common board/socket/module system architectures would, therefore, benefit from an ability to efficiently move from one BIOS to another, whenever the system microprocessor is changed.